Dynamically routing messages in a publish/subscribe system by creating temporal topics for subscriptions and publications

ABSTRACT

A method, system and computer program product for dynamically routing messages in a publish/subscribe system. A messaging application receives messages from sensors (e.g., road condition sensors). Upon analyzing the messages using data analytics, an event (e.g., icy road condition) may be correlated with the analyzed messages. In such a scenario, a temporal topic based on the triggered event is created. Furthermore, a temporal publication (e.g., “icy road condition near exit 40”) and a temporal subscription are created. Potential subscribers to be associated with the temporal subscription are identified by using either geo-location information or social media information. Once those subscribers are identified, they are associated with the temporal subscription. The temporal publication is then published to the subscribers associated with the temporal subscription. In this manner, messages are dynamically routed to the appropriate subscribers that may have previously been excluded based on dynamically created temporal topics, subscriptions and publications.

TECHNICAL FIELD

The present invention relates to publish/subscribe systems, and moreparticularly to dynamically routing messages in a publish/subscribesystem by creating temporal topics for subscriptions and publications.

BACKGROUND

A publish/subscribe system (or “publish-subscribe” system) is aneffective way of disseminating information from “publishers” to multipleusers or “subscribers.” A publisher generates messages, also referred toas events, which contain a topic and some data content. A subscriber,also referred to as a “client,” provides, ahead of time, a criterion,also referred to as a subscription, that specifies the information,based on published messages, that the system (“messaging system”) isrequired to deliver to that subscriber client in the future. In apublish/subscribe system, publishers and subscribers are anonymous inthat publishers do not necessarily know the number of subscribers ortheir locations; and subscribers do not necessarily know the locationsof the publishers.

In the publish/subscribe system, subscribers typically receive only asubset of the total messages published. The messages may be selected forreception and processing using topic-based filtering. In a topic-basedsystem, messages are published to “topics” or named logical channels. Atopic may consist of multiple strings and wildcards. The publisherregisters with a messaging application of the messaging system anddefines the topics for the messages that will be published. For example,a publisher may publish messages pertaining to the soccer team ofManchester United (e.g., topic of “Sport/Soccer/ManchesterUnited”). Asubscriber lists the topics of the messages (e.g., topic of“Sport/Soccer”) the subscriber desires to receive (“subscriptioncriterion”). The messages may be filtered by the messaging applicationusing the subscription criterion which can be tested on each publishedmessage independent of any other message. For example, a filteredpublished message might be “topic=Sport/Soccer” for all messages relatedto the topic of soccer. As a result, the subscriber would receivemessages published by the publisher pertaining to the soccer team ofManchester United.

Unfortunately, in the existing messaging systems, such topics arecreated statically. The topics are predefined and the messages arerouted based on these predefined topics. As a result, important messagesmay not be effectively disseminated between the publishers andsubscribers. For example, currently, there has been an increase in databeing generated by sensors, mobile devices, etc. For instance, suppose acar accident was detected. The message pertaining to the car accidentmay be published to all the cars within a one mile radius of the carinvolved in the accident. However, since cars are moving and theirgeolocation coordinates are constantly changing, a static subscriptionand static publication system would not be able to inform those newdrivers that are now within the one mile radius of the car accidentafter the initial publication of the message.

SUMMARY

In one embodiment of the present invention, a method for dynamicallyrouting messages in a publish/subscribe system comprises receiving oneor more messages from one or more sensors. The method further comprisesanalyzing the one or more messages using data analytics. The methodadditionally comprises correlating, by a processor, one or more of theone or more analyzed messages with an event. Furthermore, the methodcomprises creating a temporal topic in response to the one or more ofthe one or more analyzed messages being correlated with the event.Additionally, the method comprises creating a temporal publication basedon the event. In addition, the method comprises creating a temporalsubscription to subscribe to the created temporal topic. The methodfurther comprises identifying subscribers based on social media to beassociated with the temporal subscription. The method additionallycomprises publishing the temporal publication to the subscribersassociated with the temporal subscription.

Other forms of the embodiment of the method described above are in asystem and in a computer program product.

The foregoing has outlined rather generally the features and technicaladvantages of one or more embodiments of the present invention in orderthat the detailed description of the present invention that follows maybe better understood. Additional features and advantages of the presentinvention will be described hereinafter which may form the subject ofthe claims of the present invention.

BRIEF DESCRIPTION OF THE DRAWINGS

A better understanding of the present invention can be obtained when thefollowing detailed description is considered in conjunction with thefollowing drawings, in which:

FIG. 1 illustrates a publish/subscribe system configured in accordancewith an embodiment of the present invention;

FIG. 2 illustrates a hardware configuration of a messaging system inaccordance with an embodiment of the present invention;

FIG. 3 is a flowchart of a method for dynamically routing messages inthe publish/subscribe system in accordance with an embodiment of thepresent invention; and

FIG. 4 is a flowchart of an alternative method for dynamically routingmessages in the publish/subscribe system in accordance with anembodiment of the present invention.

DETAILED DESCRIPTION

The present invention comprises a method, system and computer programproduct for dynamically routing messages in a publish/subscribe system.In one embodiment of the present invention, a messaging applicationreceives messages from one or more sensors (e.g., road conditionsensors, driver activity sensors, geolocation sensors, weatherinformation sensors). Upon analyzing the messages using data analytics,an event (e.g., a driving condition meeting an alert threshold, such asan icy road condition) may be correlated with the analyzed messages. Insuch a scenario, a temporal topic based on the triggered event iscreated. Furthermore, a temporal publication (e.g., “icy road conditionnear exit 40 on interstate 75”) is created. Additionally, a temporalsubscription is created. Potential subscribers to be associated with thetemporal subscription are identified by using either geo-locationinformation or social media information. Once those subscribers areidentified, they are associated with the temporal subscription. Thetemporal publication is then published to the subscribers associatedwith the temporal subscription. In this manner, messages are dynamicallyrouted to the appropriate subscribers that may have previously beenexcluded based on dynamically created temporal topics, subscriptions andpublications.

In the following description, numerous specific details are set forth toprovide a thorough understanding of the present invention. However, itwill be apparent to those skilled in the art that the present inventionmay be practiced without such specific details. In other instances,well-known circuits have been shown in block diagram form in order notto obscure the present invention in unnecessary detail. For the mostpart, details considering timing considerations and the like have beenomitted inasmuch as such details are not necessary to obtain a completeunderstanding of the present invention and are within the skills ofpersons of ordinary skill in the relevant art.

Referring now to the Figures in detail, FIG. 1 illustrates apublish/subscribe system 100 for practicing the principles of thepresent invention in accordance with an embodiment of the presentinvention. Publish/subscribe system 100 includes a publisher 101 thatgenerates messages, including temporal publications, which contain atopic and some data content. A “temporal publication,” as used herein,refers to a publication that is only temporarily valid. Publisher 101may be any type of computing device (e.g., automobile computing system,portable computing unit, personal digital assistant (PDA), smartphone,desktop computer system, workstation, Internet appliance and the like)configured with the capability of relaying messages received fromsensors 102A-102C (e.g., road condition sensors, driver activitysensors, geolocation sensors, weather information sensors) to amessaging system 103 to be delivered to interested subscribers 104 (onlyone is shown in FIG. 1). Sensors 102A-102C may collectively orindividually be referred to as sensors 102 or sensor 102, respectively.In one embodiment, sensors 102 may be integrated with publisher 101(e.g., automobile computing system). For example, in the context wherepublisher 101 is an automobile computing system, sensors 102 generatinginformation, such as biometrics, road condition, driver activity,weather information and geolocation, may reside within the automobileand integrated with the automobile computing system. The informationgenerated by sensors 102 may then be relayed to messaging system 103 bypublisher 101. In another embodiment, sensors 102 may not be directlyintegrated with publisher 101 and may communicate with publisher 101(e.g., smartphone) via a network (e.g., wireless network). For example,in the context where publisher 101 is a smartphone (e.g., the smartphoneof the driver of an automobile), sensors 102 generating information,such as the road condition, may reside within the automobile andcommunicate such information to the smartphone, such as via a wirelessnetwork. Such information may then be relayed to messaging system 103 bypublisher 101. While FIG. 1 illustrates three sensors 102,publish/subscribe system 100 may include any number of sensors 102 usedto generate messages that are routed to messaging system 103 that can beused to trigger events as discussed further below.

Messaging system 103 acts as an intermediary between publisher 101 andindividual subscribers 104 (also referred to herein as “clients”). Asubscriber 104 may be any type of computing device (e.g., automobilecomputing system, portable computing unit, personal digital assistant(PDA), smartphone, desktop computer system, workstation, Internetappliance and the like) configured with the capability of receivingmessages from messaging system 103.

As will be discussed in further detail below, a messaging application105 of messaging system 103 dynamically creates temporal publications,temporal subscriptions and temporal topics. A “temporal subscription,”refers to a subscription that is temporarily valid. Furthermore, a“temporal topic,” refers to a topic that is temporarily valid. Messagingapplication 105 dynamically creates a temporal topic (e.g.,“/car/safetyalerts/icyroads/geolocations/geolocation=polygon1”) based ona triggered event (e.g., car accident, icy road condition). A temporalpublication (e.g., “icy road condition near exit 40 on interstate 75”)and a temporal subscription (e.g.,“/car/safetyalerts/geolocation/geolocation=current_coordinates”) arefurther created based on the created temporal topic. Messaging system103 delivers these temporal publications to subscribers 104 that areidentified as being interested in receiving the temporal publications.Such subscribers 104 may be identified based on geolocation informationor social media. A more detailed description of the hardwareconfiguration of messaging system 103 is provided below in connectionwith FIG. 2.

In one embodiment, messaging application 105 identifies potentialsubscribers to be associated with the temporal subscription based ongeolocation information. For example, if the triggered eventcorresponded to a car accident, then potential subscribers may beidentified by projecting a polygon over a geographical area around thevehicle(s) involved in the car accident thereby identifying automobiles(automobile computing systems) within the polygon (e.g., a mile from thecar accident) that would potentially be interested in receiving amessage pertaining to the car accident.

In another embodiment, messaging application 105 identifies potentialsubscribers to be associated with the temporal subscription based onsocial media (e.g., social media websites, such as Facebook®). In oneembodiment, messaging application 105 is configured to monitorinformation from at least one social media source (e.g., postings,instant messages, repostings, a profile, such as a profile onFacebook®). In one embodiment, messaging application 105 utilizesnatural language processing in understanding the information found onsocial media websites, such as the postings on a user's profile. Forexample, messaging application 105 may identify the location of apotential subscriber based on the user's profile indicating that theuser is currently at a particular location. Such information may beutilized by messaging application 105 to determine whether such a userwould be interested in receiving a message (e.g., icy road condition)based on the user's current location. In another example, messagingapplication 105 may determine from a user's profile that the user isplanning to travel on a route where an automobile accident has beendetected. Such information may be utilized by messaging application 105to determine whether such a user would be interested in receiving amessage (e.g., icy road condition) based on the user's travel plans.

In connection with the embodiment of messaging application 105identifying potential subscribers to be associated with the temporalsubscription based on social media, publish/subscribe system 100 furtherincludes a social network server 106, which may be a web serverconfigured to offer a social networking and/or microblogging service,connected to messaging system 103 via a network 107. Network 107 may be,for example, a local area network, a wide area network, a wireless widearea network, a circuit-switched telephone network, a Global System forMobile Communications (GSM) network, Wireless Application Protocol (WAP)network, a WiFi network, an IEEE 802.11 standards network, variouscombinations thereof, etc. Other networks, whose descriptions areomitted here for brevity, may also be used in conjunction with system100 of FIG. 1 without departing from the scope of the present invention.

While FIG. 1 illustrates a single publisher 101, a single messagingsystem 103, a single subscriber 104 and a single social network server106, publish/subscribe system 100 may include any number of publishers101, messaging systems 103, subscribers 104 and social network servers106. Furthermore, publish/subscribe system 100 is not to be limited inscope to any one particular architecture. For example, messaging system103 may reside within subscriber 104 or publisher 101. Furthermore,subscriber 104, messaging system 103 and publisher 101 may all beinterconnected via a network (not shown), such as a local area network,a wide area network, a wireless wide area network, a circuit-switchedtelephone network, a Global System for Mobile Communications (GSM)network, Wireless Application Protocol (WAP) network, a WiFi network, anIEEE 802.11 standards network, various combinations thereof, etc.

Referring now to FIG. 2, FIG. 2 illustrates a hardware configuration ofmessaging system 103 (FIG. 1) which is representative of a hardwareenvironment for practicing the present invention. Referring to FIG. 2,messaging system 103 has a processor 201 coupled to various othercomponents by system bus 202. An operating system 203 runs on processor201 and provides control and coordinates the functions of the variouscomponents of FIG. 2. An application 204 in accordance with theprinciples of the present invention runs in conjunction with operatingsystem 203 and provides calls to operating system 203 where the callsimplement the various functions or services to be performed byapplication 204. Application 204 may include, for example, messagingapplication 105 (FIG. 1) configured to dynamically route messages inpublish/subscribe system 100 (FIG. 1) by creating temporal topics forsubscriptions and publications as discussed further below in associationwith FIGS. 3-4.

Referring again to FIG. 2, read-only memory (“ROM”) 205 is coupled tosystem bus 202 and includes a basic input/output system (“BIOS”) thatcontrols certain basic functions of messaging system 103. Random accessmemory (“RAM”) 206 and disk adapter 207 are also coupled to system bus202. It should be noted that software components including operatingsystem 203 and application 204 may be loaded into RAM 206, which may bemessaging system's 103 main memory for execution. Disk adapter 207 maybe an integrated drive electronics (“IDE”) adapter that communicateswith a disk unit 208, e.g., disk drive.

Messaging system 103 may further include a communications adapter 209coupled to bus 202. Communications adapter 209 interconnects bus 202with an outside network thereby enabling messaging system 103 tocommunicate with publisher 101, subscriber 104 and social network server106.

The present invention may be a system, a method, and/or a computerprogram product. The computer program product may include a computerreadable storage medium (or media) having computer readable programinstructions thereon for causing a processor to carry out aspects of thepresent invention.

The computer readable storage medium can be a tangible device that canretain and store instructions for use by an instruction executiondevice. The computer readable storage medium may be, for example, but isnot limited to, an electronic storage device, a magnetic storage device,an optical storage device, an electromagnetic storage device, asemiconductor storage device, or any suitable combination of theforegoing. A non-exhaustive list of more specific examples of thecomputer readable storage medium includes the following: a portablecomputer diskette, a hard disk, a random access memory (RAM), aread-only memory (ROM), an erasable programmable read-only memory (EPROMor Flash memory), a static random access memory (SRAM), a portablecompact disc read-only memory (CD-ROM), a digital versatile disk (DVD),a memory stick, a floppy disk, a mechanically encoded device such aspunch-cards or raised structures in a groove having instructionsrecorded thereon, and any suitable combination of the foregoing. Acomputer readable storage medium, as used herein, is not to be construedas being transitory signals per se, such as radio waves or other freelypropagating electromagnetic waves, electromagnetic waves propagatingthrough a waveguide or other transmission media (e.g., light pulsespassing through a fiber-optic cable), or electrical signals transmittedthrough a wire.

Computer readable program instructions described herein can bedownloaded to respective computing/processing devices from a computerreadable storage medium or to an external computer or external storagedevice via a network, for example, the Internet, a local area network, awide area network and/or a wireless network. The network may comprisecopper transmission cables, optical transmission fibers, wirelesstransmission, routers, firewalls, switches, gateway computers and/oredge servers. A network adapter card or network interface in eachcomputing/processing device receives computer readable programinstructions from the network and forwards the computer readable programinstructions for storage in a computer readable storage medium withinthe respective computing/processing device.

Computer readable program instructions for carrying out operations ofthe present invention may be assembler instructions,instruction-set-architecture (ISA) instructions, machine instructions,machine dependent instructions, microcode, firmware instructions,state-setting data, or either source code or object code written in anycombination of one or more programming languages, including an objectoriented programming language such as Java, Smalltalk, C++ or the like,and conventional procedural programming languages, such as the “C”programming language or similar programming languages. The computerreadable program instructions may execute entirely on the user'scomputer, partly on the user's computer, as a stand-alone softwarepackage, partly on the user's computer and partly on a remote computeror entirely on the remote computer or server. In the latter scenario,the remote computer may be connected to the user's computer through anytype of network, including a local area network (LAN) or a wide areanetwork (WAN), or the connection may be made to an external computer(for example, through the Internet using an Internet Service Provider).In some embodiments, electronic circuitry including, for example,programmable logic circuitry, field-programmable gate arrays (FPGA), orprogrammable logic arrays (PLA) may execute the computer readableprogram instructions by utilizing state information of the computerreadable program instructions to personalize the electronic circuitry,in order to perform aspects of the present invention

Aspects of the present invention are described herein with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems), and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer readable program instructions.

These computer readable program instructions may be provided to aprocessor of a general purpose computer, special purpose computer, orother programmable data processing apparatus to produce a machine, suchthat the instructions, which execute via the processor of the computeror other programmable data processing apparatus, create means forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks. These computer readable program instructionsmay also be stored in a computer readable storage medium that can directa computer, a programmable data processing apparatus, and/or otherdevices to function in a particular manner, such that the computerreadable storage medium having instructions stored therein comprises anarticle of manufacture including instructions which implement aspects ofthe function/act specified in the flowchart and/or block diagram blockor blocks.

The computer readable program instructions may also be loaded onto acomputer, other programmable data processing apparatus, or other deviceto cause a series of operational steps to be performed on the computer,other programmable apparatus or other device to produce a computerimplemented process, such that the instructions which execute on thecomputer, other programmable apparatus, or other device implement thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods, and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof instructions, which comprises one or more executable instructions forimplementing the specified logical function(s). In some alternativeimplementations, the functions noted in the block may occur out of theorder noted in the figures. For example, two blocks shown in successionmay, in fact, be executed substantially concurrently, or the blocks maysometimes be executed in the reverse order, depending upon thefunctionality involved. It will also be noted that each block of theblock diagrams and/or flowchart illustration, and combinations of blocksin the block diagrams and/or flowchart illustration, can be implementedby special purpose hardware-based systems that perform the specifiedfunctions or acts or carry out combinations of special purpose hardwareand computer instructions.

As stated in the Background section, in a publish/subscribe system,subscribers typically receive only a subset of the total messagespublished. The messages may be selected for reception and processingusing topic-based filtering. In a topic-based system, messages arepublished to “topics” or named logical channels. A topic may consist ofmultiple strings and wildcards. The publisher registers with a messagingapplication of the messaging system and defines the topics for themessages that will be published. A subscriber lists the topics of themessages the subscriber desires to receive (“subscription criterion”).The messages may be filtered by the messaging application using thesubscription criterion which can be tested on each published messageindependent of any other message. Unfortunately, in the existingmessaging systems, such topics are created statically. The topics arepredefined and the messages are routed based on these predefined topics.As a result, important messages may not be effectively disseminatedbetween the publishers and subscribers. For example, currently, therehas been an increase in data being generated by sensors, mobile devices,etc. For instance, suppose a car accident was detected. The messagepertaining to the car accident may be published to all the cars within aone mile radius of the car involved in the accident. However, since carsare moving and their geolocation coordinates are constantly changing, astatic subscription and static publication system would not be able toinform those new drivers that are now within the one mile radius of thecar accident after the initial publication of the message.

The principles of the present invention provide a means for dynamicallycreating temporal topics based on events correlated with the messagesreceived from sensors (e.g., sensors 102 of FIG. 1) thereby creatingtemporal publications and temporal subscriptions to dynamically routemessages based on these events in publish/subscribe system 100 (FIG. 1)as discussed further below in association with FIGS. 3-4. FIG. 3 is aflowchart of a method for dynamically routing messages inpublish/subscribe system 100. FIG. 4 is a flowchart of an alternativemethod for dynamically routing messages in publish/subscribe system 100.

As stated above, FIG. 3 is a flowchart of a method 300 for dynamicallyrouting messages in publish/subscribe system 100 in accordance with anembodiment of the present invention.

Referring to FIG. 3, in conjunction with FIGS. 1-2, in step 301,messaging application 105 receives messages from sensors 102 (e.g., roadcondition sensors, driver activity sensors, geolocation sensors, weatherinformation sensors). For example, sensors 102 may reside within anautomobile and generate information, such as biometrics, road condition,driver activity, weather information and geolocation. The informationgenerated by sensors 102 is provided to publisher 101 (e.g., automobilecomputing system, smartphone) which is routed to messaging system 103.

In step 302, messaging application 105 analyzes the messages using dataanalytics. For example, data analytics may involve the use of naturallanguage processing, text analysis and computational linguistics toidentify and extract information from these messages.

In step 303, a determination is made by messaging application 105 as towhether an event (e.g., a driving condition meeting an alert threshold)is correlated with the analyzed messages. For example, messagingapplication 105 may receive messages pertaining to a road condition,such as slippery road condition, as well as pertaining to the weather,such as the temperature being below freezing. Based on analyzing thesemessages, messaging application 105 may determine that an event, such asan icy road condition, is correlated with the analyzed messages.

If an event is not correlated with the analyzed messages, then messagingapplication 105 continues to receive messages from sensors 102 in step301.

If, however, an event is correlated with the analyzed messages, then, instep 304, messaging application 105 identifies a geo-location area oftargeted potential subscribers, such as by projecting a polygon over thegeo-location area. For example, if the event correlated with theanalyzed messages corresponded to a car accident, then a geographicalarea of potential subscribers is identified by projecting a polygon overa geographical area around the vehicle(s) involved in the car accidentthereby identifying automobiles (automobile computing systems) withinthe polygon (e.g., a mile from the car accident) that would potentiallybe interested in receiving a message pertaining to the car accident.

In step 305, messaging application 105 creates a temporal topic based onthe triggered event for targeted potential subscribers (e.g. automobilecomputing systems) located within the geo-location area. For example, inresponse to detecting an icy road condition event, the temporal topic of“/car/safetyalerts/icyroads/geolocations/geolocation=polygon1” isdynamically created over a geo-location area, such as the area coveredby a polygon (e.g., polygon 1) projected over that area.

In step 306, messaging application 105 creates a temporal publicationbased on the triggered event. For example, a temporal publication of“icy road condition near exit 40 on interstate 75” is created inresponse to detecting an icy road condition event.

In step 307, messaging application 105 creates a temporal subscriptionto subscribe to the created temporal topic. For example, a temporalsubscription of“/car/safetyalerts/geolocation/geolocation=current_coordinates” iscreated in response to detecting an icy road condition event.

In step 308, messaging application 105 associates subscribers 104 (e.g.,automobile computing systems, mobile devices, smartphones) to thetemporal subscription that are located within the geo-location areaidentified in step 304.

In step 309, messaging application 105 publishes the temporalpublication to the subscribers 104 associated with the temporalsubscription. In this manner, messages are dynamically routed to theappropriate subscribers that may have previously been excluded based ondynamically created temporal topics, subscriptions and publications.

In step 310, a determination is made by messaging application 105 as towhether it is time to remove the temporal topics, subscriptions andpublications. The topics, subscriptions and publications that arecreated by messaging application 105 are temporal in nature and arevalid for a certain duration of time. Once that period of time haselapsed, messaging application 105 removes the temporal topics,subscriptions and publications.

If it is not time to remove the temporal topics, subscriptions andpublications (i.e., the period of time that temporal topics,subscriptions and publications are valid has not yet elapsed), thenmessaging application 105 continues to determine whether it is time toremove the temporal topics, subscriptions and publications in step 310.

If, however, it is time to remove the temporal topics, subscriptions andpublications (i.e., the period of time that temporal topics,subscriptions and publications are valid has elapsed), then, in step311, messaging application 105 removes the temporal topics,subscriptions and publications.

An alternative method for dynamically routing messages inpublish/subscribe system 100 by identifying potential subscribersthrough the use of social media is discussed below in connection withFIG. 4.

FIG. 4 is a flowchart of an alternative method 400 for dynamicallyrouting messages in publish/subscribe system 100 in accordance with anembodiment of the present invention.

Referring to FIG. 4, in conjunction with FIGS. 1-2, in step 401,messaging application 105 receives messages from sensors 102 (e.g., roadcondition sensors, driver activity sensors, geolocation sensors, weatherinformation sensors). For example, sensors 102 may reside within anautomobile and generate information, such as biometrics, road condition,driver activity, weather information and geolocation. The informationgenerated by sensors 102 is provided to publisher 101 (e.g., automobilecomputing system, smartphone) which is routed to messaging system 103.

In step 402, messaging application 105 analyzes the messages using dataanalytics. For example, data analytics may involve the use of naturallanguage processing, text analysis and computational linguistics toidentify and extract information from these messages.

In step 403, a determination is made by messaging application 105 as towhether an event (e.g., a driving condition meeting an alert threshold)is correlated with the analyzed messages. For example, messagingapplication 105 may receive messages pertaining to a road condition,such as slippery road condition, as well as pertaining to the weather,such as the temperature being below freezing. Based on analyzing thesemessages, messaging application 105 may determine that an event, such asan icy road condition, is correlated with the analyzed messages.

If an event is not correlated with the analyzed messages, then messagingapplication 105 continues to receive messages from sensors 102 in step401.

If, however, an event is correlated with the analyzed messages, then, instep 404, messaging application 105 creates a temporal topic based onthe triggered event. For example, in response to detecting an icy roadcondition event, the temporal topic of“/car/safetyalerts/icyroads/geolocations/geolocation=polygon1” isdynamically created.

In step 405, messaging application 105 creates a temporal publicationbased on the triggered event. For example, a temporal publication of“icy road condition near exit 40 on interstate 75” is created inresponse to detecting an icy road condition event.

In step 406, messaging application 105 creates a temporal subscriptionto subscribe to the created temporal topic. For example, a temporalsubscription of“/car/safetyalerts/geolocation/geolocation=current_coordinates” iscreated in response to detecting an icy road condition event.

In step 407, messaging application 105 identifies subscribers ofinterest 104 based on social media to be associated with the temporalsubscription. For example, messaging application 105 may be configuredto search social networking websites (e.g., profiles on Facebook®) toidentify the location of a potential subscriber based on the user'sprofile (e.g., profile indicates the current location of the user,profile indicates the user's travel plans) utilizing natural languageprocessing. If it is deemed that the user would be interested inreceiving information pertaining to the triggered event (e.g., icy roadcondition) based on the user's current location or travel plans, thenthe user's computing device (e.g., smartphone, automobile computingsystem) would be identified as a subscriber of interest 104 to beassociated with the temporal subscription. It is noted for clarity thatsuch users did not previously register such a topic of interest (e.g.,icy road condition) with messaging application 105 and that such usersare dynamically identified based on the triggered events and theinformation gathered from social media at that point in time. In oneembodiment, the user's computing device would be identified based oninformation obtained from the user's profile.

In step 408, messaging application 105 publishes the temporalpublication to the subscribers 104 associated with the temporalsubscription. In this manner, messages are dynamically routed to theappropriate subscribers that may have previously been excluded based ondynamically created temporal topics, subscriptions and publications.

In step 409, a determination is made by messaging application 105 as towhether it is time to remove the temporal topics, subscriptions andpublications. The topics, subscriptions and publications that arecreated by messaging application 105 are temporal in nature and arevalid for a certain duration of time. Once that period of time haselapsed, messaging application 105 removes the temporal topics,subscriptions and publications.

If it is not time to remove the temporal topics, subscriptions andpublications (i.e., the period of time that temporal topics,subscriptions and publications are valid has not yet elapsed), thenmessaging application 105 continues to determine whether it is time toremove the temporal topics, subscriptions and publications in step 409.

If, however, it is time to remove the temporal topics, subscriptions andpublications (i.e., the period of time that temporal topics,subscriptions and publications are valid has elapsed), then, in step410, messaging application 105 removes the temporal topics,subscriptions and publications.

The descriptions of the various embodiments of the present inventionhave been presented for purposes of illustration, but are not intendedto be exhaustive or limited to the embodiments disclosed. Manymodifications and variations will be apparent to those of ordinary skillin the art without departing from the scope and spirit of the describedembodiments. The terminology used herein was chosen to best explain theprinciples of the embodiments, the practical application or technicalimprovement over technologies found in the marketplace, or to enableothers of ordinary skill in the art to understand the embodimentsdisclosed herein.

The invention claimed is:
 1. A system, comprising: a memory unit forstoring a computer program for dynamically routing messages in apublish-subscribe system; and a processor coupled to the memory unit,wherein the processor is configured to execute the program instructionsof the computer program comprising: receiving one or more messages fromone or more sensors; analyzing said one or more messages using dataanalytics; correlating one or more of said one or more analyzed messageswith an event; creating a temporal topic in response to said one or moreof said one or more analyzed messages being correlated with said event;creating a temporal publication based on said event; creating a temporalsubscription to subscribe to said created temporal topic; identifyingsubscribers, who had not previously registered to receive messagespertaining to said created temporal topic, based on social media to beassociated with said temporal subscription; and publishing said temporalpublication to said subscribers associated with said temporalsubscription.
 2. The system as recited in claim 1, wherein saidsubscribers are identified to be associated with said temporalsubscription based on said social media using natural languageprocessing.
 3. The system as recited in claim 1, wherein said eventcorresponds to a topic of interest to said subscribers that areidentified to be associated with said temporal subscription, whereinsaid subscribers that are identified to be associated with said temporalsubscription did not previously register said topic of interest with amessaging application to receive messages related to said topic ofinterest.
 4. The system as recited in claim 1, wherein said one or moremessages received from said one or more sensors comprises one or more ofthe following: biometric, road conditions, driver activity, weatherinformation and geolocation.
 5. The system as recited in claim 1,wherein said one or more sensors reside within an automobile.
 6. Thesystem as recited in claim 1, wherein the program instructions of thecomputer program further comprise: removing said temporal topic, saidtemporal publication and said temporal subscription after a period oftime has elapsed.